1. Field of the Invention
The present invention relates to computer networks and more particularly to selecting path computation elements for computing paths through a computer network.
2. Background Information
A computer network is a geographically distributed collection of nodes interconnected by communication links and segments for transporting data between end nodes, such as personal computers and workstations. Many types of networks are available, with the types ranging from local area networks (LANs) to wide area networks (WANs). LANs typically connect the nodes over dedicated private communications links located in the same general physical location, such as a building or campus. WANs, on the other hand, typically connect geographically dispersed nodes over long-distance communications links, such as common carrier telephone lines, optical lightpaths, synchronous optical networks (SONET), or synchronous digital hierarchy (SDH) links. The Internet is an example of a WAN that connects disparate networks throughout the world, providing global communication between nodes on various networks. The nodes typically communicate over the network by exchanging discrete frames or packets of data according to predefined protocols, such as the Transmission Control Protocol/Internet Protocol (TCP/IP). In this context, a protocol consists of a set of rules defining how the nodes interact with each other.
Computer networks may be further interconnected by an intermediate node, such as a router, to extend the effective “size” of each network. Since management of a large system of interconnected computer networks can prove burdensome, smaller groups of computer networks may be maintained as routing domains or autonomous systems. The networks within an autonomous system (AS) are typically coupled together by conventional “intradomain” routers configured to execute intradomain routing protocols, and are generally subject to a common authority. To improve routing scalability, a service provider (e.g., an ISP) may divide an AS into multiple “areas.” It may be desirable, however, to increase the number of nodes capable of exchanging data; in this case, interdomain routers executing interdomain routing protocols are used to interconnect nodes of the various ASes. It may also be desirable to interconnect various ASes that are operated under different administrative domains. As used herein, a router that connects different areas or ASes together is generally referred to as a border router. In the case of areas rather than ASes since the routers are under a common authority, a single router may in fact serve as an exit border router of one area and an entry border router of another area.
An example of an interdomain routing protocol is the Border Gateway Protocol version 4 (BGP), which performs routing between ASes by exchanging routing and reachability information among neighboring interdomain routers of the systems. An adjacency is a relationship formed between selected neighboring (peer) routers for the purpose of exchanging routing information messages and abstracting the network topology. BGP generally operates over a reliable transport protocol, such as the Transmission Control Protocol (TCP), to establish a TCP connection/session. The BGP protocol is well known and generally described in Request for Comments (RFC) 1771, entitled A Border Gateway Protocol 4 (BGP-4), published March 1995, which is hereby incorporated by reference.
Examples of an intradomain routing protocol, or an interior gateway protocol (IGP), are the Open Shortest Path First (OSPF) routing protocol and the Intermediate-System-to-Intermediate-System (ISIS) routing protocol. The OSPF and ISIS protocols are based on link-state technology and, therefore, are commonly referred to as link-state routing protocols. Link-state protocols define the manner with which routing information and network-topology information are exchanged and processed in an AS or area. This information is generally directed to an intradomain router's local state (e.g., the router's usable interfaces and reachable neighbors or adjacencies). In the case of ISIS, the local state is exchanged using link-state packets, whereas in the case of OSPF, the information is exchanged using link state advertisements (LSAs). The term “LSA” is used herein to generally reference both types of information exchange. The OSPF protocol is described in RFC 2328, entitled OSPF Version 2, dated April 1998 and the ISIS protocol is described in RFC 1195, entitled Use of OSI ISIS for routing in TCP/IP and Dual Environments, dated December 1990, both of which are hereby incorporated by reference.
Multi-Protocol Label Switching (MPLS) Traffic Engineering has been developed to meet data networking requirements such as guaranteed available bandwidth or fast restoration. MPLS Traffic Engineering exploits modern label switching techniques to build guaranteed bandwidth end-to-end tunnels through an IP/MPLS network of label switched routers (LSRs). These tunnels are a type of label switched path (LSP) and thus are generally referred to as MPLS Traffic Engineering (TE) LSPs. Examples of MPLS TE can be found in RFC 3209, entitled RSVP-TE: Extensions to RSVP for LSP Tunnels, dated December 2001, RFC 3784 entitled Intermediate-System-to-Intermediate-System (IS-IS) Extensions for Traffic Engineering (TE), dated June 2004, and RFC 3630, entitled Traffic Engineering (TE) Extensions to OSPF Version 2, dated September 2003, the contents of all of which are hereby incorporated by reference in their entirety.
Establishment of an MPLS TE LSP from a head-end LSR to a tail-end LSR involves computation of a path through a network of LSRs. Optimally, the computed path is the “shortest” path, as measured in some metric, that satisfies all relevant LSP Traffic Engineering constraints such as e.g., required bandwidth, availability of backup bypass tunnels for each link and node included in the path, etc. Path computation can either be performed by the head-end LSR or by some other entity operating as a path computation element (PCE). The head-end LSR (or a PCE) exploits its knowledge of network topology and resources available on each link to perform the path computation according to the LSP Traffic Engineering constraints. Various path computation methodologies are available including CSPF (constrained shortest path first). MPLS TE LSPs can be configured within a single IGP area or may also span multiple IGP areas or ASes.
Some applications may incorporate unidirectional data flows configured to transfer time-sensitive traffic from a source (sender) in a computer network to a destination (receiver) in the network in accordance with a certain “quality of service” (QoS). Here, network resources may be reserved for the unidirectional flow to ensure that the QoS associated with the data flow is maintained. The Resource reSerVation Protocol (RSVP) is a network-control protocol that enables applications to reserve resources in order to obtain special QoS for their data flows. RSVP works in conjunction with routing protocols to, e.g., reserve resources for a data flow in a computer network in order to establish a level of QoS required by the data flow. RSVP is defined in R. Braden, et al., Resource ReSerVation Protocol (RSVP), RFC 2205. In the case of traffic engineering applications, RSVP signaling is used to establish a TE-LSP and to convey various TE-LSP attributes to routers, such as border routers, along the TE-LSP obeying the set of required constraints whose path may have been computed by various means.
The PCE is an entity having the capability to compute paths between any nodes of which the PCE is aware in an AS or area. PCEs are especially useful in that they are more cognizant of network traffic and path selection within their AS or area, and thus may be used for more optimal path computation. A head-end LSR may further operate as a path computation client (PCC) configured to send a path computation request to the PCE, and receive a response with the computed path, potentially taking into consideration other requests from other PCCs. It is important to note that when one PCE sends a request to another PCE, it acts as a PCC. PCEs conventionally have limited or no visibility outside of its surrounding area or AS. A PCC can be informed of a PCE either by preconfiguration by an administrator, or by a PCE Discovery (PCED) message (“advertisement”), which is sent from the PCE within its area or across the entire AS to advertise its services.
One difficulty that arises in crossing AS boundaries is that path computation at the head-end LSR requires knowledge of network topology and resources across the entire network between the head-end and the tail-end LSRs. Yet service providers typically do not share this information with each other across AS borders. Neither the head-end LSR nor any single PCE will have sufficient knowledge to compute a path. Because of this, MPLS Traffic Engineering path computation techniques are required to compute inter-domain TE LSPs. A similar problem arises in computing the paths of MPLS Traffic Engineering LSPs across areas. Network topology and resource information do not generally flow across area boundaries even though a single service provider may operate all the areas.
The use of PCEs has been adapted to create a distributed PCE architecture, in order to extend MPLS TE LSPs across AS or area boundaries. An example of such a distributed architecture is described in commonly-owned copending U.S. patent application Ser. No. 10/767,574, entitled COMPUTING INTER-AUTONOMOUS SYSTEM MPLS TRAFFIC ENGINEERING LSP PATHS, filed by Vasseur et al., on Sep. 18, 2003, the contents of which are hereby incorporated by reference in its entirety. In a distributed PCE architecture, the visibility needed to compute paths is extended between adjacent areas and ASes so that PCEs may cooperate to compute paths across multiple areas or ASes by exchanging virtual shortest path trees (VSPTs) while preserving confidentiality across ASes. VSPTs, which may be represented as virtual links made of “loose hops,” are used because service providers may desire to maintain their internal network architectures and designs confidential. One way to compute the VSPTs is by using a virtual shortest path tree (VSPT) algorithm. Generally, a VSPT is a compressed path description (entry and exit/destination points of areas/ASes) that informs a previous PCE that a destination can be reached from a particular entry to a particular exit in such a way that the internal path specifics are kept confidential from an adjacent area or AS. The virtual links that compose the VSPT will generally have an associated network cost for each calculated link. It should be noted that in the context of multiple ASes operating under a common authority (e.g. a unique service provider), such virtual links may also specify an entire path. A set of virtual links may be further organized (in certain protocols) within an explicit route object (ERO) to facilitate transfer of the compressed path descriptions to the previous PCE.
In some areas or ASes, it may be desirable to use multiple PCEs within the same adjacent area or AS to alleviate the load on any one PCE in particular and to avoid any single point of failure. In this case, a PCC may receive notification through multiple PCED advertisements that more than one PCE exists. Consequently, a PCC requesting the computation of a path, e.g., an MPLS inter-domain Traffic Engineering LSP, by means of the VSPT algorithm, for example, must first determine to which PCE it can send its path computation request. In addition to informing PCCs that it can act as a PCE for either inter-area and/or inter-AS Traffic Engineering path computation, a PCE can also inform the PCCs of its path computation capabilities, generally through the use of Type/Length/Value (TLV) encoding formats. Examples of TLV encoding formats used to specify MPLS Traffic Engineering capabilities are described in OSPF MPLS Traffic Engineering Capabilities (draft-vasseur-ospf-te-caps.txt) published July 2004, and IS-IS MPLS Traffic Engineering Capabilities (draft-vasseur-isis-te-caps.txt) published July 2004, both by Vasseur et al., both of which are expressly incorporated by reference in their entirety. These computation capabilities include, but are not limited to, the ability to compute local paths, inter-area paths, multi-domain paths, etc.
When there are multiple PCE “candidates,” however, a PCC does not have sufficient information to adequately select a PCE based on its actual available path computation resources. This may lead to highly sub-optimal choices since a path computation request may be directed to an overloaded PCE which would result in increasing the path computation time (and consequently the path set up time). This is particularly true in environments where a large amount of requests are sent so as to reroute or re-optimize many paths, for instance, after a network element failure or restoration. There is a need, therefore, for an efficient technique to load balance interaction between PCEs and PCCs. There is also a need for a system and method to advertise a PCE's available path computation resources, and for a system and method for a PCC to additionally select the optimal PCE based upon those resources.